package com.biz.primus.model.promotion.vo.req;

import com.biz.primus.base.enums.PromotionChannelEnum;
import com.biz.primus.base.vo.IPromotionReqVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 商品促销信息BaseReqVo
 *
 * @author david-liu
 */
@Getter
@Setter
public abstract class BaseProductPromotionReqVo implements IPromotionReqVo {
    private static final long serialVersionUID = -7774908103408165744L;

    /**
     * 店铺ID
     */
    @ApiModelProperty(value = "店铺ID")
    private Long shopId;

    /**
     * 省ID
     */
    @ApiModelProperty(value = "省ID")
    private Long provinceId;

    /**
     * 城市ID
     */
    @ApiModelProperty(value = "城市ID")
    private Long cityId;

    /**
     * 区ID
     */
    @ApiModelProperty(value = "区ID")
    private Long zoneId;

    /**
     * 会员ID
     */
    @ApiModelProperty(value = "会员ID")
    private Long memberId;

    /**
     * 用户是否是首单
     */
    @ApiModelProperty(value = "用户是否是首单")
    private Boolean userFirstOrder = false;

    /**
     * 促销渠道(APP/微商城)
     *
     * @see PromotionChannelEnum
     */
    @ApiModelProperty(value = "订单渠道", allowableValues = "APP/WECHAT_MALL/CALL")
    private PromotionChannelEnum appChannel;

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
    }
}
